unit  untCadLancamentoLivroCaixa;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, untCadPadrao, cxStyles, cxCustomData, cxGraphics, cxFilter,
  cxData, cxDataStorage, cxEdit, DB, cxDBData, cxPropertiesStore, ACBrBase,
  ACBrEnterTab, cxContainer, cxGridTableView, cxGridCustomPopupMenu,
  cxGridPopupMenu, cxLookAndFeels, dxBarDBNav, ImgList, ActnList, dxBar,
  cxClasses, IBQuery, IBCustomDataSet, ExtCtrls, cxGridLevel, cxControls,
  cxGridCustomView, cxGridCustomTableView, cxGridDBTableView, cxGrid, cxPC,
  cxLabel, cxTextEdit, cxDBEdit, cxMemo, cxCalc, cxDropDownEdit,
  cxCalendar, cxButtonEdit, cxMaskEdit, cxLookupEdit, cxDBLookupEdit,
  cxDBLookupComboBox, cxIntlBase, cxintl, cxGridBandedTableView,
  cxGridDBBandedTableView, cxLookAndFeelPainters, dxSkinsCore, dxSkinBlack,
  dxSkinBlue, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide,
  dxSkinFoggy, dxSkinGlassOceans, dxSkiniMaginary, dxSkinLilian,
  dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins,
  dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
  dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
  dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinPumpkin, dxSkinSeven,
  dxSkinSharp, dxSkinSilver, dxSkinSpringTime, dxSkinStardust,
  dxSkinSummer2008, dxSkinsDefaultPainters, dxSkinValentine,
  dxSkinXmas2008Blue, dxSkinscxPCPainter, dxSkinsdxBarPainter, dxSkinsForm;

type
  TfrmCadLanctoLivroCaixa = class(TfrmCadPadrao)
    dtListCODIGO: TIntegerField;
    dtListPRODUTOR: TIntegerField;
    dtListTERCEIRO: TIntegerField;
    dtListPROPRIEDADE: TIntegerField;
    dtListCONTA: TIntegerField;
    dtListHISTORICO: TMemoField;
    dtListDOCUMENTO: TIBStringField;
    dtListVALOR: TIBBCDField;
    dtListNOME_PRODUTOR: TIBStringField;
    dtListNOME_TERCEIRO: TIBStringField;
    dtListNOME_CONTA: TIBStringField;
    edtCodigo: TcxDBTextEdit;
    cxDBTextEdit3: TcxDBTextEdit;
    cxLabel2: TcxLabel;
    cxLabel1: TcxLabel;
    cxLabel9: TcxLabel;
    cbProdutor: TcxDBLookupComboBox;
    btnProdutor: TcxButtonEdit;
    dtListDATA: TDateField;
    dtListDATA_MOVIMENTO: TDateField;
    cxLabel3: TcxLabel;
    cxDBDateEdit1: TcxDBDateEdit;
    dtEditCODIGO: TIntegerField;
    dtEditPRODUTOR: TIntegerField;
    dtEditTERCEIRO: TIntegerField;
    dtEditPROPRIEDADE: TIntegerField;
    dtEditCONTA: TIntegerField;
    dtEditHISTORICO: TMemoField;
    dtEditDOCUMENTO: TIBStringField;
    dtEditVALOR: TIBBCDField;
    dtEditDATA: TDateField;
    dtEditDATA_MOVIMENTO: TDateField;
    cxDBDateEdit2: TcxDBDateEdit;
    cxLabel4: TcxLabel;
    btnTerceiro: TcxButtonEdit;
    cbTerceiro: TcxDBLookupComboBox;
    cxLabel5: TcxLabel;
    cbPropriedade: TcxDBLookupComboBox;
    cxLabel6: TcxLabel;
    btnPropriedade: TcxButtonEdit;
    btnConta: TcxButtonEdit;
    cbConta: TcxDBLookupComboBox;
    cxLabel7: TcxLabel;
    cxDBCalcEdit1: TcxDBCalcEdit;
    cxLabel8: TcxLabel;
    cxDBMemo1: TcxDBMemo;
    lstProdutores: TIBQuery;
    dsProdutor: TDataSource;
    dsTerceiro: TDataSource;
    lstTerceiro: TIBQuery;
    lstPropriedade: TIBQuery;
    dsPropriedade: TDataSource;
    dsConta: TDataSource;
    lstConta: TIBQuery;
    lstProdutoresCODIGO: TIntegerField;
    lstProdutoresNOME: TIBStringField;
    lstTerceiroCODIGO: TIntegerField;
    lstTerceiroNOME: TIBStringField;
    lstPropriedadeCODIGO: TIntegerField;
    lstPropriedadeNOME: TIBStringField;
    lstContaCODIGO: TIntegerField;
    lstContaCODIGO_STR: TIBStringField;
    lstContaCODIGO_PAI: TIntegerField;
    lstContaTRIBUTAVEL: TIBStringField;
    lstContaTIPO: TIBStringField;
    lstContaNOME: TIBStringField;
    lstParametro: TIBQuery;
    lstParametroCODIGO: TIntegerField;
    lstParametroUSUARIO: TIntegerField;
    lstParametroDATA_MOVTO: TDateField;
    lstParametroOPERACAO: TIntegerField;
    lstParametroPRODUTOR: TIntegerField;
    lstParametroTERCEIRO: TIntegerField;
    lstParametroPROPRIEDADE: TIntegerField;
    lstParametroPRODUTO: TIntegerField;
    lstHistorico: TIBQuery;
    dsHistorico: TDataSource;
    cbHistorico: TcxDBLookupComboBox;
    btnHistorico: TcxButtonEdit;
    cxLabel15: TcxLabel;
    dtListCOD_HISTORICO: TIntegerField;
    dtListHISTORICO_PADRAO: TIBStringField;
    dtEditCOD_HISTORICO: TIntegerField;
    lstHistoricoCODIGO: TIntegerField;
    lstHistoricoTIPO_COMPLEM: TIBStringField;
    lstHistoricoDESCRICAO: TIBStringField;
    dtListMES: TIBStringField;
    GridDBBandedTableView2CODIGO: TcxGridDBBandedColumn;
    GridDBBandedTableView2PRODUTOR: TcxGridDBBandedColumn;
    GridDBBandedTableView2TERCEIRO: TcxGridDBBandedColumn;
    GridDBBandedTableView2PROPRIEDADE: TcxGridDBBandedColumn;
    GridDBBandedTableView2CONTA: TcxGridDBBandedColumn;
    GridDBBandedTableView2HISTORICO: TcxGridDBBandedColumn;
    GridDBBandedTableView2DOCUMENTO: TcxGridDBBandedColumn;
    GridDBBandedTableView2VALOR: TcxGridDBBandedColumn;
    GridDBBandedTableView2NOME_PRODUTOR: TcxGridDBBandedColumn;
    GridDBBandedTableView2NOME_TERCEIRO: TcxGridDBBandedColumn;
    GridDBBandedTableView2NOME_CONTA: TcxGridDBBandedColumn;
    GridDBBandedTableView2DATA: TcxGridDBBandedColumn;
    GridDBBandedTableView2DATA_MOVIMENTO: TcxGridDBBandedColumn;
    GridDBBandedTableView2COD_HISTORICO: TcxGridDBBandedColumn;
    GridDBBandedTableView2HISTORICO_PADRAO: TcxGridDBBandedColumn;
    GridDBBandedTableView2MES: TcxGridDBBandedColumn;
    procedure FormShow(Sender: TObject);
    procedure btnProdutorClick(Sender: TObject);
    procedure btnTerceiroClick(Sender: TObject);
    procedure btnPropriedadeClick(Sender: TObject);
    procedure btnContaClick(Sender: TObject);
    procedure ActCadLookupExecute(Sender: TObject);
    procedure lstPropriedadeBeforeOpen(DataSet: TDataSet);
    procedure dtEditPRODUTORValidate(Sender: TField);
    procedure lstParametroBeforeOpen(DataSet: TDataSet);
    procedure dtEditNewRecord(DataSet: TDataSet);
    procedure btnHistoricoClick(Sender: TObject);
    procedure ActEditExecute(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCadLanctoLivroCaixa: TfrmCadLanctoLivroCaixa;

implementation

uses untCadPropriedades, untCadPlanoContas, untCadTerceiros,
  untDmPrincipal, UnitCadHistoricos;

{$R *.dfm}

procedure TfrmCadLanctoLivroCaixa.FormShow(Sender: TObject);
begin
  inherited;
  lstProdutores.Close;
  lstProdutores.Open;

  lstTerceiro.Close;
  lstTerceiro.Open;

  lstConta.Close;
  lstConta.Open;

  lstPropriedade.Close;
  lstPropriedade.Open;

  lstParametro.Close;
  lstParametro.Open;

  lstHistorico.Close;
  lstHistorico.Open;
end;

procedure TfrmCadLanctoLivroCaixa.btnProdutorClick(Sender: TObject);
begin
  inherited;
  frmCadTerceiros := TfrmCadTerceiros.Create(Self);
  frmCadTerceiros.ShowModal;

  lstProdutores.Close;
  lstProdutores.Open;

  dtEditPRODUTOR.Value := frmCadTerceiros.Codigo;

  frmCadTerceiros.Free;
  frmCadTerceiros := nil;
end;

procedure TfrmCadLanctoLivroCaixa.btnTerceiroClick(Sender: TObject);
begin
  inherited;
  frmCadTerceiros := TfrmCadTerceiros.Create(Self);
  frmCadTerceiros.ShowModal;

  lstProdutores.Close;
  lstProdutores.Open;

  dtEditTERCEIRO.Value := frmCadTerceiros.Codigo;

  frmCadTerceiros.Free;
  frmCadTerceiros := nil;
end;

procedure TfrmCadLanctoLivroCaixa.btnPropriedadeClick(Sender: TObject);
begin
  inherited;
  frmCadPropriedade := TfrmCadPropriedade.Create(Self);
  frmCadPropriedade.ShowModal;

  lstPropriedade.Close;
  lstPropriedade.Open;

  dtEditPROPRIEDADE.Value := frmCadPropriedade.Codigo;

  frmCadPropriedade.Free;
  frmCadPropriedade := nil;
end;

procedure TfrmCadLanctoLivroCaixa.btnContaClick(Sender: TObject);
begin
  inherited;
  frmCadPlanoContas := TfrmCadPlanoContas.Create(Self);
  frmCadPlanoContas.ShowModal;

  lstConta.Close;
  lstConta.Open;

  dtEditCONTA.Value := frmCadPlanoContas.Codigo;

  frmCadPlanoContas.Free;
  frmCadPlanoContas := nil;
end;

procedure TfrmCadLanctoLivroCaixa.ActCadLookupExecute(Sender: TObject);
begin
  inherited;
  if cbProdutor.Focused then
    btnProdutor.OnClick(btnProdutor)
  else if cbTerceiro.Focused then
    btnTerceiro.OnClick(btnTerceiro)
  else if cbPropriedade.Focused then
    btnPropriedade.OnClick(btnPropriedade)
  else if cbConta.Focused then
    btnConta.OnClick(btnConta)
  else if cbHistorico.Focused then
    btnHistorico.OnClick(btnHistorico);
end;

procedure TfrmCadLanctoLivroCaixa.lstPropriedadeBeforeOpen(
  DataSet: TDataSet);
begin
  inherited;
  lstPropriedade.ParamByName('codigo').value := dtEditPRODUTOR.Value;
end;

procedure TfrmCadLanctoLivroCaixa.dtEditPRODUTORValidate(Sender: TField);
begin
  inherited;
  lstPropriedade.Close;
  lstPropriedade.Open;
end;

procedure TfrmCadLanctoLivroCaixa.lstParametroBeforeOpen(
  DataSet: TDataSet);
begin
  inherited;
  lstParametro.ParamByName('usuario').value := dmPrincipal.usuario_logado_codigo;
end;

procedure TfrmCadLanctoLivroCaixa.dtEditNewRecord(DataSet: TDataSet);
begin
  inherited;

  if lstParametroPRODUTOR.AsInteger > 0 then
    dtEditPRODUTOR.Value := lstParametroPRODUTOR.AsInteger;

  if lstParametroTERCEIRO.AsInteger > 0 then
    dtEditTERCEIRO.Value := lstParametroTERCEIRO.AsInteger;

  if lstParametroPROPRIEDADE.AsInteger > 0 then
    dtEditPROPRIEDADE.Value := lstParametroPROPRIEDADE.AsInteger;

  if lstParametroDATA_MOVTO.value > 0 then
    dtEditDATA_MOVIMENTO.AsDateTime := lstParametroDATA_MOVTO.AsDateTime;
end;

procedure TfrmCadLanctoLivroCaixa.btnHistoricoClick(Sender: TObject);
begin
  inherited;
  frmCadHistoricos  := TfrmCadHistoricos.Create(Self);
  frmCadHistoricos.ShowModal;

  lstHistorico.Close;
  lstHistorico.Open;

  dtEditCOD_HISTORICO.Value := frmCadHistoricos.Codigo;

  frmCadHistoricos.Free;
  frmCadHistoricos := nil;
end;

procedure TfrmCadLanctoLivroCaixa.ActEditExecute(Sender: TObject);
begin
  inherited;
  lstPropriedade.Close;
  lstPropriedade.Open;
end;

end.
